using System;
using System.Collections.Generic;
using System.Text;
using ACS.Compiler.Tables.Modes;
using ACS.Compiler.Tree.Impl;

namespace ACS.Compiler.Tables
{
    public class Procedure
    {
        private bool _standard;

        private string _name;
        private string _namespace;
        private DataTable _procData;
        private List<DataField> _parameters;
        private Mode _retMode;

        private Block _codeBase;

        public Procedure(string name, string ns, DataTable procData, List<DataField> parameters, Mode retMode, Block codeBase, bool standard)
        {
            _name = name;
            _standard = standard;
            _namespace = ns;
            _procData = procData;
            _parameters = parameters;
            _retMode = retMode;
            _codeBase = codeBase;
        }

        public string Name
        {
            get { return _name; }
        }


        public bool Standard
        {
            get { return _standard; }
        }

        public string Namespace
        {
            get { return _namespace; }
        }

        public DataTable ProcData
        {
            get { return _procData; }
        }

        public List<DataField> Parameters
        {
            get { return _parameters; }
        }

        public Mode RetMode
        {
            get { return _retMode; }
        }

        public Block CodeBase
        {
            get { return _codeBase; }
        }
    }
}
